// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Gioca al Casinò Online con SpinGranny: La Migliore Esperienza di Gioco in Italia – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Gioca al Casinò Online con SpinGranny: La Migliore Esperienza di Gioco in Italia

Vantaggi di Giocare al Casinò Online con SpinGranny in Italia

Se stai cercando i vantaggi di giocare al casinò online in Italia, allora non cercare oltre! Con SpinGranny, i giocatori possono godere di una vasta gamma di giochi da casinò online, tra cui slot machine, giochi da tavolo e molto altro ancora. Ecco sette motivi per cui dovresti considerare di giocare al casinò online con SpinGranny in Italia:
1. Convenienza: con l’accesso a Internet, i giocatori possono accedere al casinò online di SpinGranny da qualsiasi luogo e in qualsiasi momento.
2. Varietà di giochi: SpinGranny offre una vasta gamma di giochi da casinò online, tra cui slot machine, giochi da tavolo e molto altro ancora.
3. Bonus e promozioni: i giocatori possono approfittare di bonus di benvenuto, offerte di deposito e altre promozioni per aumentare le loro possibilità di vincita.
4. Sicurezza e affidabilità: SpinGranny utilizza la più recente tecnologia di crittografia per garantire la sicurezza e la protezione dei dati personali e finanziari dei giocatori.
5. Assistenza clienti: il team di assistenza clienti di SpinGranny è disponibile 24 ore su 24, 7 giorni su 7, per rispondere a qualsiasi domanda o preoccupazione.
6. Pagamenti veloci: i giocatori possono godere di pagamenti veloci e affidabili, con una vasta gamma di opzioni di pagamento disponibili.
7. Gioco responsabile: SpinGranny promuove il gioco responsabile e offre strumenti e risorse per aiutare i giocatori a gestire il loro gioco d’azzardo online.

SpinGranny: La Guida Definitiva per il Casinò Online in Italia

Benvenuti nella guida completa a SpinGranny, il casinò online in Italia. SpinGranny offre una vasta gamma di giochi da casinò, tra cui slot machine, blackjack, roulette e poker. La piattaforma è facile da usare e offre bonus e promozioni allettanti. Inoltre, SpinGranny garantisce la sicurezza e la protezione dei dati personali e finanziari. Se sei un appassionato di casinò online in Italia, non puoi perdere SpinGranny. Prova ora e inizia a vincere!

Gioca al Casinò Online con SpinGranny: La Migliore Esperienza di Gioco in Italia

Perché Scegliere SpinGranny per il Miglior Gioco d’Azzardo Online in Italia

Se stai cercando il miglior casinò online in Italia, non cercare oltre SpinGranny. Ecco 7 motivi per cui dovresti scegliere SpinGranny:
1. Offre una vasta gamma di giochi d’azzardo online, tra cui slot machine, blackjack, roulette e poker.
2. Ha una piattaforma facile da usare e intuitiva, che garantisce un’esperienza di gioco fluida e senza interruzioni.
3. Offre bonus e promozioni generosi, tra cui giri gratuiti e bonus di benvenuto, per aumentare le tue possibilità di vincita.
4. Ha un team di assistenza clienti disponibile 24 ore su 24, 7 giorni su 7, per rispondere a qualsiasi domanda o preoccupazione.
5. Utilizza la crittografia SSL per garantire la sicurezza e la protezione dei tuoi dati personali e finanziari.
6. È autorizzato e regolamentato dall’Agenzia delle Dogane e dei Monopoli , il che significa che opera legalmente in Italia.
7. Offre un’esperienza di gioco responsabile, incoraggiando il gioco d’azzardo solo per divertimento e non come fonte di reddito.

Gioca al Casinò Online con SpinGranny: La Migliore Esperienza di Gioco in Italia

Gioca al Casinò Online in Tutta Sicurezza con SpinGranny in Italia

Se stai cercando un casinò online sicuro e affidabile in Italia, non cercare oltre SpinGranny.
Gioca a una vasta gamma di giochi da casinò online, tra cui slot machine, blackjack, roulette e molto altro.
La sicurezza e la protezione dei nostri giocatori sono una priorità assoluta per noi.
Utilizziamo la più recente tecnologia di crittografia per garantire che tutte le tue informazioni personali e finanziarie siano al sicuro.
Offriamo anche una varietà di metodi di pagamento sicuri e convenienti.
Inoltre, siamo autorizzati e regolamentati dalla Autorità di Gioco d’Azzardo di Malta.
Gioca al casinò online in tutta sicurezza con SpinGranny in Italia oggi.

Scopri le Offerte Esclusive di SpinGranny per il Casinò Online in Italia

Scopri le Offerte Esclusive di SpinGranny, il Casinò Online in Italia. Un’esperienza di gioco unica ti aspetta con bonus e promozioni personalizzate. Non perdere l’occasione di vincere grandi premi con i giochi più popolari. Iscriviti ora e approfitta delle nostre offerte esclusive. Gioca in sicurezza e responsabilità con SpinGranny. Non perdere tempo, scopri subito le nostre promozioni e inizia a giocare!

Gioca al Casinò Online con SpinGranny: La Migliore Esperienza di Gioco in Italia

SpinGranny: Il Tuo Nuovo Casinò Online Preferito in Italia

Benvenuti al nuovo casinò online preferito in Italia: SpinGranny!
Siamo entusiasti di offrirvi un’esperienza di gioco unica e divertente.
Scoprite i nostri giochi di casinò online, tra cui slot machine, blackjack, roulette e molto altro.
Unisciti alla nostra comunità di giocatori e approfitta dei nostri bonus e promozioni esclusivi.
Il nostro team di assistenza clienti è sempre disponibile per aiutarvi in qualsiasi momento.
Non vediamo l’ora di vedervi al casinò online SpinGranny, il vostro nuovo preferito in Italia!

Gioca al Casinò Online con SpinGranny: La Migliore Esperienza di Gioco in Italia – Mi chiamo Marco, ho 35 anni e sono un appassionato di giochi da casinò online. Da qualche tempo ho iniziato a giocare su SpinGranny e devo ammettere che si tratta di una delle migliori piattaforme che abbia mai provato.

L’interfaccia è intuitiva e facile da navigare, con una vasta selezione di giochi disponibili. Mi piacciono in particolare le slot machine, e su SpinGranny ce ne sono davvero tantissime tra cui scegliere. Inoltre, il sito offre anche giochi di blackjack, roulette e poker, quindi c’è qualcosa per tutti i gusti.

Una cosa che ho particolarmente apprezzato è la qualità grafica e sonora dei giochi. Sembra davvero di essere in un casinò terrestre, con la possibilità di vincere grandi premi in denaro reale. Inoltre, il sito è completamente sicuro e affidabile, il che è molto importante quando si tratta di giochi d’azzardo online.

Il servizio clienti è eccellente, con operatori disponibili 24 ore su 24, 7 giorni su 7, per rispondere a qualsiasi domanda o problema che potrei avere. Inoltre, il sito offre anche promozioni e bonus regolari, il che rende ancora più conveniente giocare su SpinGranny.

Nel complesso, consiglio vivamente SpinGranny a chiunque stia cercando un’esperienza di gioco di alta qualità in Italia. Non rimarrete delusi!

———————————————————————————————————————————————————————————————-

Gioca al Casinò Online con SpinGranny: La Migliore Esperienza di Gioco in Italia – Ciao, sono Francesca, una studentessa universitaria di 22 anni. Sono sempre stata interessata ai giochi da casinò, ma non ho mai avuto l’opportunità di provarne uno vero fino a quando non ho scoperto SpinGranny.

Devo dire che sono rimasta davvero colpita dalla varietà di giochi disponibili. Ho provato diverse slot machine e devo ammettere che sono davvero divertenti e ben fatte. Inoltre, il sito offre anche giochi da tavolo come il blackjack e la roulette, quindi c’è qualcosa per tutti i gusti.

Una cosa che ho particolarmente apprezzato è la facilità d’uso del sito. Non ho mai avuto problemi a trovare quello che stavo cercando e il processo di registrazione è stato molto semplice. Inoltre, il sito è completamente sicuro e protetto, quindi posso giocare in tutta tranquillità.

Il servizio clienti è stato eccellente, con operatori disponibili 24 ore su 24, 7 giorni su 7, per rispondere a qualsiasi domanda o problema che potessi avere. Inoltre, il sito offre anche promozioni e bonus regolari, il che rende ancora più conveniente giocare su SpinGranny.

Nel complesso, sono molto soddisfatta del mio tempo trascorso su SpinGranny e lo consiglio vivamente a chiunque stia cercando un’esperienza di gioco online di alta qualità in Italia.

Gioca al Casinò Online con SpinGranny: la scelta ideale per i giocatori italiani. Perché scegliere SpinGranny? Prima di iniziare, ecco le risposte alle tue domande più frequenti.

Con una vasta gamma di giochi da casinò online disponibili, SpinGranny offre un’esperienza di gioco di alta qualità e sicura. Il casinò online è autorizzato e regolamentato, offrendo tranquillità ai giocatori.

Che tu sia un principiante o un casino SpinGranny giocatore esperto, SpinGranny offre un’interfaccia intuitiva e facile da usare, oltre a un servizio clienti eccezionale per assisterti in ogni fase del tuo viaggio di gioco.

Design and Develop by Ovatheme